// pages/cart/cart.js
import Toast from '@vant/weapp/toast/toast';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    cartList: [
      {
        id: 1,
        title: '不规则破洞宽松牛仔外套',
        desc: '属性：烟青色外套 4.4米短袖...',
        price: 16.8,
        quantity: 1,
        image: 'https://img.yzcdn.cn/vant/cat.jpeg'
      },
      {
        id: 2,
        title: '不规则破洞宽松牛仔外套',
        desc: '属性：烟青色外套 4.4米短袖...',
        price: 16.8,
        quantity: 2,
        image: 'https://img.yzcdn.cn/vant/cat.jpeg'
      }
    ],
    checkedGoods: [1, 2], // 选中的商品ID数组
    selectAll: true, // 全选状态
    totalPrice: 0, // 总价格
    checkedCount: 0 // 选中商品数量
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.calculateTotal();
  },

  /**
   * 计算总价和选中数量
   */
  calculateTotal() {
    const { cartList, checkedGoods } = this.data;
    let totalPrice = 0;
    let checkedCount = 0;
    
    cartList.forEach(item => {
      if (checkedGoods.includes(item.id)) {
        totalPrice += item.price * item.quantity;
        checkedCount += item.quantity;
      }
    });
    
    this.setData({
      totalPrice: totalPrice.toFixed(2),
      checkedCount,
      selectAll: checkedGoods.length === cartList.length
    });
  },

  /**
   * 复选框变化
   */
  onCheckboxChange(event) {
    this.setData({
      checkedGoods: event.detail
    });
    this.calculateTotal();
  },

  /**
   * 全选/取消全选
   */
  onSelectAllChange(event) {
    const selectAll = event.detail;
    const checkedGoods = selectAll ? this.data.cartList.map(item => item.id) : [];
    
    this.setData({
      selectAll,
      checkedGoods
    });
    this.calculateTotal();
  },

  /**
   * 数量步进器变化
   */
  onStepperChange(event) {
    const { value } = event.detail;
    const { id } = event.currentTarget.dataset;
    const { cartList } = this.data;
    
    const updatedCartList = cartList.map(item => {
      if (item.id === id) {
        return { ...item, quantity: value };
      }
      return item;
    });
    
    this.setData({ cartList: updatedCartList });
    this.calculateTotal();
  },

  /**
   * 管理按钮点击
   */
  onManageClick() {
    Toast('管理功能开发中');
  },

  /**
   * 去逛逛按钮点击
   */
  onGoShopping() {
    wx.switchTab({
      url: '/pages/index/index'
    });
  },

  /**
   * 提交订单
   */
  onSubmit() {
    const { checkedGoods, cartList, totalPrice } = this.data;
    
    if (checkedGoods.length === 0) {
      Toast('请选择要结算的商品');
      return;
    }
    
    // 获取选中的商品
    const selectedGoods = cartList.filter(item => checkedGoods.includes(item.id));
    
    // 跳转到订单确认页面
    wx.navigateTo({
      url: `/pages/order/order?type=cart&totalPrice=${totalPrice}&goods=${JSON.stringify(selectedGoods)}`
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.calculateTotal();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 这里可以重新加载购物车数据
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '我的购物车',
      path: '/pages/cart/cart'
    };
  }
})